package edu.jptest.service;

import java.util.List;

import edu.jptest.bean.Answer;
import edu.jptest.bean.Question;
import edu.jptest.bean.QuestionContent;
import edu.jptest.bean.QuestionSubject;

public interface IQuestionService {
	// 插入问题
	public boolean insertQuestion(Question question,
			QuestionSubject questionSubject, QuestionContent questionContent,
			Answer answer);

	// 修改问题
	public boolean updateQuestion(Question question, Answer answer,
			QuestionContent questionContent, QuestionSubject questionSubject);

	// 删除问题
	public boolean deleteQuestion(int questionId);

	// 通过问题id，查询问题对象
	public Question getQuestionByQuestionId(int question_id);

	// 通过来源id，查找该来源下的所有试题id
	public List<Integer> getQuestionsIdByOriginId(int origin_id);

	// 通过试题来源、试题题目，获得相关条件下的试题集合
	public List<Integer> getQuestionsIdByOriginIdAndSubject(int origin_id,
			int questionSubject_id);

	// 通过试题来源、已组试题题目，获得相关条件下的试题集合
	public List<Integer> getQuestionsIdByOriginIdAndSubjectInPaper(
			int origin_id, int questionSubject_id);

	// 通过题型id，查找相关试题集合ͨ������ID�õ���������ID
	public List<Integer> getQuesByType(int typeId);

	// 通过题型id、考点id，查找相关试题集合ͨ������id������id�������������ID����
	public List<Integer> getQuestionsIdByTypeAndTestPoint(int questionTypeId,
			int testPointId);

	// 根据作者得到试题ͨ������˵õ���������
	public List<Integer> getQuesByAuthor(int authorId);

	// 通过录入时间，查找某段时间内系统录入的试题
	public List<Integer> getQuestionsIdByTime(java.sql.Date startDate,
			java.sql.Date endDate);

	// 通过题目id， 查找此题目下的试题id
	public List<Integer> getQuestionsIdBySubjectId(int subjectId);

	// 通过已组试卷中题目id， 查找试卷中此题目下的试题id
	public List<Integer> getQuestionsIdByExaminPaperSubjectId(
			int examinePaperSubjectId);

	// 获得所有问题id
	public List<Integer> getAllQuestionsId();
}
